In recent years, users of local and wide area networks (e.g., the Internet) have upgraded to increasingly higher bandwidth connections. The common user also has access to greater computer hardware processing power. At the same time, the coders and decoders (codecs) for video transmission over a network connection have seen improvements such that an individual user has the capability to stream and receive real-time video over the Internet with off-the-shelf components. All this has allowed individual users to begin chatting, sharing, and videoconferencing with point-to-point technologies on their computers.
However, bandwidth remains a constrained resource that must be shared over many users. Likewise, processing power is typically shared by the operating system and several applications in a typical user's computer hardware. These factors have been barriers to the use of personal computers in establishing a conference with more than two participants. Such a conference will be referenced below as a multi-participant conference.
Several approaches are possible for multi-participant conferencing. One such approach is the full-mesh topology, which is the extension of two-participant point-to-point methods to multi-participant conferencing. Under the full-mesh topology, each participant sends all of its audio and/or video (A/V) data to all other participants in the multi-participant conference. However, the full mesh topology requires a high amount of processing power and broad bandwidth at and between each participant of the multi-participant conference. Even with just a few participants, the full-mesh topology quickly becomes untenable because each participant and each network connection is responsible for sending and receiving a burdensome amount of data. Moreover, the weakest connection or hardware point determines the maximum capability of a conference for all participants in the full-mesh topology.
The star topology is another possible approach for multi-participant conferencing. In prior art this approach uses a central server to receive data from all participants in the conference and send all that data back out to each participant. The required server needs high bandwidth and processing power. The server requirements scale with the number of conferences to be hosted, making this approach unusable for wide scale deployment.
Thus, there is a need in the art for a better architecture for multi-participant conferencing. Ideally, such an architecture would allow the participants to use off-the-shelf computers and typically available bandwidth and not require the deployment of dedicated servers.